<?php

class Contrato_model extends Base_model
{
	const TABLA = "contrato";
	
	var $id;
	var $cliente_fk;
	var $tecnico_tipo_servicio_fk;
	
	function __construct()
	{
		parent::__construct();
	}
	
/** Inserta un registro */
	function insert()
	{
		$this->db->insert(Contrato_model::TABLA, $this->to_array());
		return $this->db->getInsertId();
	}
	
	/** Actualiza el registro */
	function update()
	{
		$this->db->update(Contrato_model::TABLA, $this->to_array());
	}
	
	/** Elimina el registro de la BD */ 
	function delete($id)
	{
		$this->db->where('id', $id);
		$this->db->delete();
	}
	
	/** Retorna el objeto correspondiente con el identificador */
	function get($id)
	{
		$this->db->where('id', $id);
		return $this->db->get(Contrato_model::TABLA);
	}
	
	/**
	 * Retorna todos los contratos de un usuario (tecnico o cliente) en particular.
	 */
	function getContratosPorUsuario($id)
	{
		$this->db->where('$cliente_fk', $id);
		return $this->db->get(Contrato_model::TABLA);
	}
	
	
	/** Retorna todos los objetos */
	function getAll()
	{
		return $this->db->get(Contrato_model::TABLA);		
	}
	
	/** Retorna todos los clientes con su insformación del contrato */
	
	function getClienteInfo()
	{
		$query = " select usuario.nombres ".
				 " from ".Contrato_model::TABLA ." contrato left join ". 
				 Usuario_model::TABLA . " usuario on usuario.id = contrato.cliente_fk ";
	
		return $this->db->rawQuery($query);
	}
	
	/** Retorna todos los los servicios del contrato */
	function getServicioInfo()
	{
		$query = " select ts.nombre, tts.precio_hora ".
				 " from ".Contrato_model::TABLA ." contrato left join ". 
				 Tecnico_tipo_servicio_model::TABLA . " tts on tts.tipo_servicio_fk = contrato.tecnico_tipo_servicio_fk left join ".
				 Tipo_servicio_model::TABLA	. " ts on ts.id = tts.tipo_servicio_fk ";
	
		return $this->db->rawQuery($query);
	}
	
}















